home *** CD-ROM | disk | FTP | other *** search
- unit Date3;
- interface
- uses SysUtils, Classes;
-
- Type
- TDayOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);
-
- TDate3 = class(TComponent)
- private
- FInternalDate: TDateTime;
-
- FDay: Word;
- FMonth: Word;
- FYear: Word;
-
- protected
- procedure SetDay(NewDay: Word);
- procedure SetMonth(NewMonth: Word);
- procedure SetYear(NewYear: Word);
-
- function GetDayOfWeek: TDayOfWeek;
-
- private
- DummyTDayOfWeek: TDayOfWeek;
-
- published
- property Day: Word read FDay write SetDay;
- property Month: Word read FMonth write SetMonth;
- property Year: Word read FYear write SetYear;
-
- property DayOfWeek: TDayOfWeek read GetDayOfWeek
- write DummyTDayOfWeek;
- public
- constructor Create(AOwner: TComponent); override;
- end {TDate3};
-
- procedure Register;
-
- implementation
-
- Constructor TDate3.Create(AOwner: TComponent);
- begin
- inherited Create(AOwner);
- FInternalDate := SysUtils.Date;
- DecodeDate(SysUtils.Date,FYear,FMonth,FDay);
- end {Create};
-
- procedure TDate3.SetDay(NewDay: Word);
- begin
- if (NewDay in [1..31]) then
- begin
- FDay := NewDay;
- FInternalDate := EncodeDate(FYear,FMonth,FDay);
- end;
- end {SetDay};
-
- procedure TDate3.SetMonth(NewMonth: Word);
- begin
- if (NewMonth in [1..12]) then
- begin
- FMonth := NewMonth;
- FInternalDate := EncodeDate(FYear,FMonth,FDay);
- end;
- end {SetMonth};
-
- procedure TDate3.SetYear(NewYear: Word);
- begin
- FYear := NewYear;
- FInternalDate := EncodeDate(FYear,FMonth,FDay);
- end {SetYear};
-
- function TDate3.GetDayOfWeek: TDayOfWeek;
- begin
- GetDayOfWeek := TDayOfWeek(Pred(SysUtils.DayOfWeek(FInternalDate)));
- end {GetDayOfWeek};
-
- procedure Register;
- begin
- RegisterComponents('Dr.Bob', [TDate3])
- end {Register};
- end.
-